package com.esaheki.flashcards.classes;
/**
 * Card é a classe que mantém um registro de cartas de uma determinada categoria.
 * Um objeto dessa classe encapsula todas as informações pertinentes a cada carta.
 * Essas informações são:
 * <ul>
 * <li>A pergunta
 * <li>A resposta
 * <li>A quantidade atual de acertos
 * <li>A quantidade atual de testes
 * <li>O aproveitamento médio
 * </ul>
 * <p>
 * 
 * @author      Elton Saheki Horikoshi <esaheki@gmail.com>
 */
public class Card {
	
	/** Id da carta */
	private int id;
	/** Frente da carta */
	private String front;
	/** Verso da carta */
	private String back;
	/** Quantidade de acertos */
	private int countRight;
	/** Quantidade de testes */
	private int countTests;
	

	/**
	 * Registra a id da carta.
	 * @param id       id a ser registrado
	 */
	public int getId() {
		return id;
	}

	/**
	 * Retorna a id da carta.
	 */
	public void setId(int id) {
		this.id = id;
	}

	public String getFront() {
		return front;
	}

	public void setFront(String front) {
		this.front = front;
	}

	public String getBack() {
		return back;
	}

	public void setBack(String back) {
		this.back = back;
	}

	public int getCountRight() {
		return countRight;
	}

	public void setCountRight(int countRight) {
		this.countRight = countRight;
	}

	public int getCountTests() {
		return countTests;
	}

	public void setCountTests(int countTests) {
		this.countTests = countTests;
	}

	/**
	 * Calcula a porcentagem de acertos da carta.
	 */
	public Double getScore() {
		if (countTests == 0) {
			return 0.0;
		}
		else {
			return (double)countRight / (double)countTests;
		}
	}
	
}
